1. Field of the Invention
The present invention relates to a color value correction apparatus for converting input color values of picture elements of a color image to corrected output color values, and in particular to a color value correction apparatus in which such conversion is executed by transform operations within a color space using real-time computations.
In general, such a color value correction apparatus is applicable to a color printer apparatus, color image display apparatus, color television camera, color pattern recognition apparatus, etc. It should be understood that the term "correction" as applied herein to color values is used in a very general sense, and can include for example the conversion of a combination of three or more color density values to a completely different type of value, e.g. a corresponding value of hue, or saturation.
2. Description of the Related Art
In the prior art, in image processing of a monocolor image, the information contained in each picture element of a picture consist only of luminance (i.e. density) information, which is one-dimensional information. Adjustment of the luminance values is usually executed by using a gamma transform, which can be done by real-time computation by using a table memory in which are stored values which provide an arbitrary non-linear conversion characteristic. Thus the manner in which the luminance values of a monocolor image are modified by such a gamma transform operation can be freely changed, simply by changing the contents of the table memory.
In the case of modifying the color values of the picture elements of a color picture too, in the prior art, a transform method is used in which the color picture is processed as if it consisted of a combination of three monocolor pictures. The values of these are expressed as respectively lying in R (red), G (green) and B (blue) planes, with the transform being executed by using respectively different table memories corresponding to these three planes. However with that type of processing, the color transform is actually being effected by one-dimensional processing, i.e. of the form: EQU R'=hR (R), G'=hG (G), and B'=hB (B)
In color image processing, the information contained in each picture element is actually 3-dimensional information, expressable as a set of red, green and blue values in the form (R, G, B). Thus a true color transform operation should consist of a 3-dimensional transform that is executed upon that set of values, for each picture element, i.e. of the form EQU R'=fR(R,G,B), G'=fG(R,G,B); and B'=fB(R,G,B)
In recent years, an important type of color image processing technique has been based on converting the (R, G, B) value set for each picture element of a picture into a set of H (hue), L (luminance) and S (saturation) values, i.e. of the form: EQU H=H (R, G, B).
That HLS transform is an example of a 3-dimensional transform method in which one output value is produced in response to a set of three input values. Another is required in color printing, in which it is generally necessary to convert each set of R, G, B input color values obtained by an optical scanning operation into a corresponding set of corrected red, green, blue values (with such converted values being designated in the following as R', B', G'), or a corresponding set of C (cyan), M (magenta), and Y (yellow) values, or a set of C, M, Y and B (black) values, i.e. for each picture element of the original image. In the following, each converted output value (e.g. a R' value or a C value, for example) produced by such a transform operation on an input combination of three R, G, B values will be referred to in general as a correction color value.
In future, therefore, it will be important to provide hardware for an apparatus whereby arbitrary types of such 3-dimensional color transform operations can be executed in real time. Such an apparatus should be configured to have a wide range of applicability. Use of table memories, i.e. look-up tables, will of course enable a widely applicable type of color transform apparatus to be realized. However, assuming that it requires 8 bits of data to express a single color value (i.e. a red, green, or blue value), it would be necessary to provide a very large memory capacity for such a table memory e.g. of the order of 16 Mbyte, if a sufficient number of output R', G', B'combinations is to be stored for achieving satisfactory resolution. Thus at the present time it is necessary to develop a dedicated new type of hardware for each specific real-time color image processing application. It has not been possible to realize a generally-applicable type of real-time color transform apparatus.
More specifically, a transform operation in which one output value (e.g. a R' value) is obtained in response to a 3-dimensional vector input value such as an R, G, B value combination, can be considered as being executed using a 3-dimensional color space. That color space consists of a regular rectangular lattice of points representing respective color correction values that are stored in a table memory, such that each color correction value can be addressed a uniquely corresponding combination of R, G, B input values. In the case of a conversion from R, G, B input value combinations to sets of three corrected output values such as sets of R', G', B' values, three of these color spaces (and hence three table memories) would be used, either concurrently or successively, to obtain each combination of R', G', B' output values. In the case of color printing, for example, it is usual to successively obtain separate arrays of corrected output values as separation images, for color separation printing, i.e. to first obtain all of the R' corrected output values for the picture elements of an original image, using one color space (one table memory), then all of the G' corrected output values, using a second color space (A) second table memory), then all of the B' values, using a third color space (i.e. a third table memory).
Each table memory is addressed three-dimensionally, by combinations of R, G, B values, so that each of these corrected output values is outputted when a corresponding input data value R, G, B set is supplied. However in order to avoid an excessively large amount of storage capacity being required for each table memory, as described hereinabove, the number of output color correction values that are stored in each table memory is made less than the number of possible input R, G, B combinations that may be supplied to the apparatus It is therefore necessary to interpolate an output color correction value for each input R, G, B color value combination that does not correspond to one of the color correction values stored in a table memory.
Various methods have been proposed for executing such interpolation. A prior art method and apparatus for effecting this type of interpolation to executed 3-dimensional color correction processing has been proposed in U.S. Pat. No. 4,275,413, entitled "Linear Interpolator for Color Correction." The basic principles of that invention are as follows, considering the derivation of only one type of corrected output values, e.g. R' values. A set these corrected output values are stored in a table memory, with the addresses of the memory being expressed as input R, G, B combinations, and with each of these R, G, B, address values consisting of high-order bits of an R, G, B input color value combination. Since each of these input high-order bit R, G, B address values has an equal number of bits, the contents of the memory can be expressed as a cubic color space formed of a regular array of points which correspond to respective R' corrected output values. These points define "unit cubes", each of whose 8 corner points corresponds to a specific R' value. For the purpose of interpolation, the unit cube is conceived as being divided into a fixed number of tetrahedra. The operation of the apparatus of that invention for generating a corrected output color value (e.g. a red value) in response to an input R, G, B combination is, basically, to first determine an interpolation position as being within a specific one of the plurality of tetrahedra within a specific one of the unit cubes (with that determination being made based upon the the high-order and low-order bits of each of the R, G and B values of that input combination). Each of the four R' output color values stored in the memory which correspond to the four vertices of the selected tetrahedron are then successively read out of the memory. In addition, a set of four weighting coefficients, selected in accordance with the particular tetrahedron that has been selected is generated, and each of the read-out R output color values is then multiplied by a specifically corresponding one of that set of weighting coefficients. The results of these four multiplication operations are then added together, to obtain the desired interpolated output R' color value.
Such a prior art color value correction apparatus enables various operations to be executed at high speed, such as color correction, interchanging specific colors, etc., while substantially preserving the tone gradation characteristics of the color image that is being processed. However the color value correction apparatus of the above prior art U.S. patent has various disadvantages. Firstly, in order to execute an interpolation operation to obtain an output color value (each R, G and B value constituting an output R,G,B color value combination) it is necessary to execute a total of four multiplication operations as described above, followed by an addition operation.
Moreover it is desirable to effect such non-linear color transform processing at extremely high speed, to achieve real-time operation. To achieve maximum speed, it is necessary to execute in parallel the multiplication operations that are required for an interpolation operation, then the execute the subsequent addition operations also in parallel. With the aforementioned U.S. patent, there are four multiplication operations which must be executed in parallel in that way, so that it is necessary to provide a total of four separate multipliers for that purpose. It would be preferable to use a color value correction apparatus which requires a smaller number of multipliers to execute such a transform interpolation operation, in order to simplify the hardware configuration of the apparatus.
Furthermore with that prior art apparatus, the four values corresponding to the apexes of a selected tetrahedron of a selected unit cube are successively read out from a memory by addressing that memory sequentially, with the values that are read being then held temporarily in respective registers. When all of these successive read-out operations has been completed, the aforementioned parallel multiplication operation can begin. Thus that prior art apparatus cannot achieve a very high speed of processing, due to that sequential memory read-out operation.
The assignees of the present invention have proposed, in a Japanese patent application having Provisional Publication No. 3-13066, with filing date of Jun. 9, 1989, a color value correction apparatus whose basic principles are similar to those described hereinabove, but in which a set of four table memories are used in parallel to store the color correction values corresponding to the respective vertices of each tetrahedron in the color space. In that way, a higher speed of operation can be achieved, since color correction values are read out from the table memories in parallel, to be used in parallel multiplication operations. However that has the disadvantage of not using the memory capacity with maximum efficiency, which can be achieved by storing color transform difference values between respective color correction values of a unit tetrahedron, as described in detail hereinafter. Such color transform difference values have a smaller range of variation of amplitude than the original color correction values from which they are derived, and so each can be stored as a datum formed of a smaller number of bits than is required to store an original color correction value.
Thirdly, human visual characteristics are not symmetrical with respect to each of the axes of a color space such as is used for transform operations in that prior art U.S. patent. Of the red, blue and green axes of such a color space, the green axis is the most important with regard to human visual characteristics. Thus, an effectively greater degree of interpolation accuracy can be obtained by increasing the resolution of the color space along the green axis, i.e., in concrete terms, by increasing the total number of addresses in which are stored respectively different G' output color values. That would require an increase in the number of bits used to address the green axis values of the color space, by comparison with the respective numbers of bits used to address the red and blue axes. However there is no provision for providing such an increased resolution along at least one axis of the color space, in prior art types of color value correction apparatus using a color space transform, such as the apparatus of the aforementioned U.S. patent.